import 'package:hi_cache/hi_cache.dart';
import 'package:hi_net/hi_net.dart';
import 'package:hi_net/request/h_base_request.dart';
import 'package:net/http/request/login_request.dart';
import 'package:net/http/request/registration_request.dart';

class LoginDao {
  static const BOARDING_PASS = "boarding-pass"; //令牌
  //登录
  static login(String userName, String password) {
    return send(userName, password);
  }

  //注册
  static registration(
      String userName, String password, String imoocId, String orderId) {
    return send(userName, password, imoocId: imoocId, orderId: orderId);
  }

  static send(String userName, String password, {imoocId, orderId}) async {
    HBaseRequest request;
    if (imoocId != null && orderId != null) {
      request = RegistrationRequest();
    } else {
      request = LoginRequest();
    }
    request
        .add("userName", userName)
        .add("password", password)
        .add("imoocId", imoocId)
        .add("orderId", orderId);
    var result = await HiNet.getInstance().fire(request);
    // md由于没得数据所以只有写死数据----一下都是根据业务来的
    if (result['code'] == 0 && result['data'] != null) {
      // 保存令牌--缓存下来-只针对登录的时候保存令牌 --注册就不用了
      if (imoocId != null && orderId != null) {
        return result;
      } else {
        // HiCache.getInstance()
        //     .setString(BOARDING_PASS, result['data']['verifySuccess']);
        HiCache.getInstance().setString(BOARDING_PASS, result['data']);
      }
    }

    return result;
  }

  // 获取登陆令牌--每个业务接口都需要--所以去base——request里面处理 因为url那个里面每次发请求都会执行 所以相当于请求拦截（加参数）
  static getBoardingPass() {
    return HiCache.getInstance().get(BOARDING_PASS);
  }
}
